package hot;

/**
 * @author lakersUp
 * @Classname       自小覆盖子串
 * @Description     可以用两个map来做,  不过比较复杂
 *                  用128大小的数组来模拟计数更简单
 * @Date 2022/3/10 10:58
 * @Version 1.0
 */
public class Hot76minWindow {
    public String minWindow(String s, String t) {
        char[] chars = s.toCharArray();
        char[] chart = t.toCharArray();
        int[] hash=new int[128];
        for(int i=0;i<chart.length;i++){
            hash[chart[i]]--;
        }
        String res="";
        for(int i=0,j=0,count=0;i<chars.length;i++){
            hash[chars[i]]++;
            if(hash[chars[i]]<=0){
                count++;
            }
            while(count==chart.length && hash[chars[j]]>0){
                hash[chars[j++]]--;
            }
            if(count==chart.length){
                if(res.equals("") || res.length()>(i-j+1)){
                    res=s.substring(j,i+1);
                }
            }
        }
        return res;
    }
}
